class Solution {
public:
    int trap(vector<int>& height) {
        
        int n=height.size();
        int sum=0;
        vector<int> left(n);//左边最大值
        vector<int> right(n);
        for(int i=1;i<n;i++)
        {
            left[i]=max(height[i-1],left[i-1]);
        }
        for(int j=n-2;j>=0;j--)
        {
            right[j]=max(height[j+1],right[j+1]);
        }
        for(int i=0;i<n;i++)
        {
            sum+=min(left[i],right[i])<=height[i]?0:min(left[i],right[i])-height[i];
        }
        return sum;
        

        
    }
};